The present invention relates to a method and apparatus for the initialization of a class of non-linear confusion data generators to enhance the security of an encryption system.
In this application, the phrases xe2x80x9capplication of data to a mediumxe2x80x9d or xe2x80x9capplying data to a mediumxe2x80x9d refer to the act of putting the data on a communication medium or mediums, or a storage medium or mediums. This involves the act of generating physical signals (i.e. electrical, electromagnetic, light, or other) which are sent (for a communication medium) or stored (for a storage medium).
Whether data is transmitted or stored, it is susceptible to unauthorized observation. Security is becoming particularly difficult as computers are increasingly networked, thus increasing potential access to stored or transmitted confidential data. Therefore, to transmit or store data in a secure fashion, the data must be encrypted.
One of the main objectives of the field of data encryption is to transform plaintext data into ciphertext data in a way to conceal the information content of the original data. For the transformation to be of any value, it should be reversible, meaning that an inverse transformation should exist that enables the user to obtain the original plaintext from the ciphertext (i.e. decryption). In general, the process involves the use of a secret key or seed in the encryption and decryption phases.
There are many encryption techniques that can be used to transfer plaintext into ciphertext. Such techniques generally utilize block ciphers, substitution ciphers, stream ciphers or random number generators. However, due to the ease of their implementation in software and hardware, stream ciphers have gained popularity as fast encryptor devices. Hence, many popular encryption techniques are based on stream ciphers.
In general, a stream cipher combines plaintext data with pseudo-random confusion data to produce ciphertext data. Hence, a stream cipher can be thought off as a confusion data generator and a combiner. An important combiner is based on the binary bit-by-bit addition mod 2, which is also known as the Boolean logic exclusive-OR (XOR) function. Hence, the confusion data would be combined with the plaintext data by using the XOR function in order to encrypt the plaintext.
The task of XORing the plaintext with random bytes generally results in the generation of random bytes. It also helps to disguise the frequency statistics of the plaintext data. In the decryption process, the same confusion data would be XORed with the ciphertext data in order to recover the original plaintext. Hence, the use of the XOR function as a combiner results in a simple decrypting process.
The design of ciphers must assume that the cipher must be able to confront an unauthorized attacker who seeks the information contained in the ciphertext. Plaintext attacks are an example of the type of assault that could be used by a cryptanalyst. Plaintext attacks capitalize on the weakness of the XOR combiner to enable an unauthorized cryptanalyst to recover a portion of the confusion data. In the worst case scenario, the cryptanalyst could analyse the confusion data and manages to reproduce the pseudo-random source, thus making the decryption of all subsequent messages possible.
The above limitation forces the designer to concentrate on developing confusion data generators or random number generators which would be exceedingly difficult for a cryptanalyst to analyse fully.
For applications that are restricted to short length secret keys, the cryptanalyst might try to guess the secret key through the use of exhaustive key search techniques. Here, the cryptanalyst would simply try to generate all possible keys in order to replicate the confusion data. Current advances in computer technology provides the cryptanalyst the ability to perform such a task in a relatively short time. Hence, the restriction on the length of the secret key increases the need for confusion data generators that can withstand the exhaustive key search attack.
Another limitation of the current design techniques of stream ciphers is related to the fact that the cipher generates a continuous stream of bits that are used to encrypt the plaintext. The generation of the continuous stream of cipher bits complicates the task of decrypting large size data files. This is because if only the last segment of a large data file must be accessed, the whole cipher stream must be generated before that segment can be reviewed. This major drawback limits the effective use of stream ciphers in applications that are, for example, based on randomly accessing a portion of large files that must be securely stored.
A first object of the present invention is to provide an improved initializer for a confusion data generator.
A second object of the invention is to develop a method and apparatus that enhances on the security of confusion data generators especially when used with applications that are restricted to short length seeds or keys.
A third object of the invention is to provide a method and apparatus for generating confusion data that can be used to secure large size data plaintext files as a collection of smaller size segments that can be independently accessed for decryption and review.
The invention is especially useful to enhance the security of non-linear confusion data generators that are restricted to short size secret keys or seeds. The initializer utilizes a user seed and a displacement distance to single or multiple secret key and cipher arrays to randomize confusion data generators such that their security is enhanced. The initializer provides the ability to design confusion data generators that are capable of securing large size data files as a collection of smaller size segments that can be independently decrypted for fast access and review. The initializer can be used to securely store data on a storage medium or transmit data over a communication medium.
According to the invention, there is provided an initializer for a confusion data generator, comprising: a first key array comprising a series of data elements, each data element having a value; a first key displacement index having a value corresponding to a data element in the first array; a second key array comprising a series of data elements, each data element having a value; a first cipher array comprising a series of data elements, each data element having a value; a first index having a value corresponding to a data element in the first cipher array; and means for initializing the first key array with a user specified seed as a function of the first displacement index.
According to the invention, there is further provided an apparatus for encrypting data comprising: (a) means for initializing a confusion data generator; (b) means for generating a segment of confusion data; (c) means for combining the segment of confusion data and a segment of data with a combiner to create a segment of encrypted data; and (d) means for re-initializing the confusion data generator.
According to the invention, there is further provided a method for initializing a confusion data generator with an initializer comprising: a first key array comprising a series of data elements, each data element having a value; a first key displacement index having a value corresponding to a data element in the first array; a second key array comprising a series of data elements, each data element having a value; a first cipher array comprising a series of data elements, each data element having a value; a first index having a value corresponding to a data element in the first cipher array; the method comprising the step of initializing the first key array with a user specified seed as a function of the first displacement index.
According to the invention, there is further provided a method for encrypting data comprising the steps of: (a) initializing a confusion data generator; (b) generating a segment of confusion data; (c) combining the segment of confusion data and a segment of data with a combiner to create a segment of encrypted data; (d) re-initializing the confusion data generator; and (e) repeating steps (a) to (d) for the remaining data.
The invention presents a method and apparatus for the initialization of a family of confusion data generators (CDG) that permits the generation of a highly non-linear or complex cipher bit stream that could be used to securely store data on a storage medium or transmit data over a communication medium. The present invention allows the development of scalable confusion data generators that could be implemented more efficiently in hardware and software to minimize development costs.
The invention enables the design of confusion data generators that have better security for applications that are restricted to short length secret key. Furthermore, the invention provides the designer with the ability to secure large size data files as a collection of smaller size segments that could be independently decrypted for fast access and review.